<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>

    // console.log(a);
    // var a = 10;
    // console.log(a);
    // 不存在声明提升
    // console.log(a);
    // let a = 10;
    // console.log(a);


    // var a = 10;
    // var a = 20;
    // console.log(a);
    // 不允许重复声明
    // let a = 10;
    // let a = 20;
    // console.log(a);


    // if(true){
    //     var a = 10;
    // }
    // console.log(a);
    // 存在块级作用域：任何一个花括号都是作用域
    // if(true){
    //     let a = 10;
    // }
    // console.log(a);


    // var a = 10;
    // console.log(a)
    // console.log(window.a)
    // 全局变量不会绑定到window
    // let a = 10;
    // console.log(a)
    // console.log(window.a)


    // function fn(){
    //     a = 20;
    //     var a = 10;
    //     console.log(a);
    // }
    // fn();
    // 存在暂时性死区
    // function fn(){
    //     var a = 20;
    //     let a = 10;
    //     console.log(a);
    // }
    // fn();


        
    // let有的，const都有

    // let和const的区别

    let a = 10;
    a = 20;
    console.log(a);

    // const b = 10;
    // b = 20;
    // console.log(b);

    const c = {
        name:"admin"
    }
    // c.name = "root"      // 堆的数据
    // c = {name:"zhangsan"}    // 栈的地址
    console.log(c);

    // const声明的变量，在声明后不允许修改地址，可以改值（复杂数据，引用传递的数据）
        // const声明的变量必须立即赋值，否则报错！


</script>
</html>